Micron Document
`:top
Eine `!algebraische Programmiersprache`! erfüllt die Eigenschaften der `F33f`_`[referenziellen Transparenz`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Referenzielle_Transparenz]`_`f. Das Konzept ist verwandt mit demjenigen `F33f`_`[funktionaler Programmiersprachen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Funktionale_Programmiersprache]`_`f.

>>Contents

• `F0af`_`[Termumformungen von Gleichungen und neue Sprachen`#termumformungen-von-gleichungen-und-neue-sprachen]`_`f
• `F0af`_`[Vorschlag algebraische Programmiersprache`#vorschlag-algebraische-programmiersprache]`_`f
• `F0af`_`[Einzelnachweise`#einzelnachweise]`_`f

-─

>>Termumformungen von Gleichungen und neue Sprachen

Für Termumformungen von Gleichungen in der `F33f`_`[Algebra`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Algebra]`_`f (bzw. Programmcode in `F33f`_`[Programmiersprachen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Programmiersprache]`_`f) müssen Regeln wie das `F33f`_`[Kommutativgesetz`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Kommutativgesetz]`_`f oder das `F33f`_`[Distributivgesetz`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Distributivgesetz]`_`f gelten. Die Regeln sind allerdings für den Programmcode in vielen Programmiersprachen nicht umsetzbar, da Nebeneffekte – wie Änderung globaler `F33f`_`[Variablen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Variable_(Programmierung)]`_`f und `F33f`_`[IO`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Eingabe_und_Ausgabe]`_`f-Aktionen – in den `F33f`_`[Funktionen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Funktion_(Programmierung)]`_`f erlaubt sind und somit diese Regeln aufheben.

`F33f`_`[John W. Backus`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=John_W._Backus]`_`f erkannte diesen Sachverhalt. Als er 1978 den `F33f`_`[Turing Award`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Turing_Award]`_`f erhielt, schlug er in seinem Vortrag die `F33f`_`[FP-Systeme`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=FP-System]`_`f vor und zeigte Beispiele weiterer Termumformungsregeln.`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f]

Die FP-Systeme vermieden allerdings grundsätzlich Variablen, was er in englischer Sprache „Function-level programming“ nannte. Heute wird auch der `F33f`_`[Lambda-Kalkül`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Lambda-Kalkül]`_`f in `F33f`_`[rein funktionalen Programmiersprachen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Funktionale_Programmierung]`_`f verwendet, es wird dann auf `F33f`_`[Variablenzuweisungen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Zuweisung]`_`f verzichtet, was es nötig macht, `F33f`_`[Schleifen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Schleife_(Programmierung)]`_`f durch `F33f`_`[Rekursion`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Rekursion]`_`f zu ersetzen.

>>Vorschlag algebraische Programmiersprache

Der Begriff `*algebraische Programmiersprache`* soll die Formulierungen `*function-level programming`* und `*rein funktionale Programmiersprache`* zusammenfassen, da algebraische Regeln und referenzielle Transparenz, die diese Regeln in Programmiersprachen ermöglicht, eng zusammenstehen.

>>Einzelnachweise

`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f John Backus: `*Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs.`* In: `*Communications of the ACM.`* Vol. 21, No. 8, August 1978, S. 613–641 (PDF; 3,0 MB ), (Archive.org; 30. Januar 2021)

`c`F0af`_`[↑ Back to top`#top]`_`f`a